home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 2 / ACE CD 2.iso / FILES / UTILS / HSBASIC2.DMS / in.adf / HB2Examples1.3.Lha / Examples / IntuiText / intuitext.bas < prev    next >
Encoding:
BASIC Source File  |  1994-04-15  |  1.9 KB  |  63 lines

  1. '' Intuitext example
  2. ''
  3. '' Shows direct drawing of text from Intuition
  4. '' Derived from RKM example (c) Copyright 1992 Commodore-Amiga, Inc.
  5. ''
  6. ''$include intuition.bh
  7. ''$include exec.bh
  8. ''$include graphics.bh
  9. DEFINT a-z
  10. CALL Test
  11.  
  12. SUB InitTextAttr(T(1),FontName$,BYVAL Height,BYVAL style,BYVAL flags)
  13. POKEL VARPTR(T(0))+ta_Name%,SADD(FontName$+CHR$(0))
  14. t(ta_YSize\2)=Height
  15. POKEB VARPTR(T(0))+ta_Style,style
  16. POKEB VARPTR(T(0))+ta_Flags,flags
  17. END SUB
  18.  
  19. SUB InitIntuiText(T(1),BYVAL frontpen, BYVAL backpen, BYVAL drawmode, BYVAL leftedge, BYVAL topedge, font(1), textstring$, BYVAL nextptr&) 
  20. STATIC t&
  21. t&=VARPTR(t(0))
  22. POKEB t&,frontpen
  23. POKEB t&+IntuiTextBackPen,backpen
  24. POKEW t&+IntuiTextDrawMode,drawmode
  25. POKEW t&+IntuiTextLeftEdge,leftedge
  26. POKEW t&+IntuiTextTopEdge,topedge
  27. POKEL t&+ITextFont, VARPTR(font(0))
  28. POKEL t&+IText, SADD(textstring$+CHR$(0))
  29. POKEL t&+NextText,nextptr&
  30. END SUB 
  31.  
  32. SUB Test
  33. STATIC mysc&,drawinfo&,win&,dipens&
  34. STATIC mytextpen,mybackpen,dif&,t!
  35. DIM SHARED TextAttr(4),myitext(IntuiText_sizeof),temp&(30)
  36. LIBRARY OPEN "intuition.library",37
  37. mysc& = LockPubScreen(0)
  38. IF mysc&=0 THEN
  39.     PRINT "Couldn't lock public screen"
  40. ELSE
  41.     drawinfo&=GetScreenDrawInfo&(mysc&)
  42.        IF drawinfo& THEN 
  43.         dipens&=PEEKL(drawinfo&+dri_pens)
  44.         mytextpen=PEEKW(dipens&+TEXTPEN&*2)
  45.         mybackpen=PEEKW(dipens&+BACKGROUNDPEN&*2)
  46.         dif&=PEEKL(drawinfo&+dri_font)
  47.         InitTextAttr TextAttr(),PEEK$(PEEKL(dif&+tf_message+mn_node+ln_name)),PEEKW(dif&+tf_Ysize),PEEKB(dif&+tf_Style),PEEKB(dif&+tf_Flags)
  48.         TAGLIST VARPTR(temp&(0)),WA_Pubscreen&,mysc&,WA_RMBTRAP&,1&,0&
  49.         win&=OpenWindowTagList(0,VARPTR(temp&(0)))
  50.         IF win& THEN
  51.             InitIntuiText myItext(),mytextpen,mybackpen,JAM2&,0,0,textattr(),"hello there",0
  52.             PrintItext  PEEKL(win&+rport),VARPTR(myitext(0)),50,50
  53.             t!=TIMER
  54.             WHILE TIMER<t!+5
  55.             WEND
  56.             CloseWindow win&
  57.         END IF
  58.         FreeScreenDrawInfo mysc&,drawinfo&
  59.         END IF
  60.         UnlockPubScreen 0, mysc&
  61. END IF
  62. END SUB
  63.